package com.itheima.tlias.exception;

import com.itheima.tlias.pojo.Result;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

//@RestControllerAdvice
/**
 * 这个注解是SpringMVC提供的一个注解，用于处理全局异常的。
 * 我们spingMVC在dispatherServlet中已经帮我们抓了异常，会检查我们是否有编写全局异常处理类，如果有的的话，会找到
 * 这个类中所有的方法，并且将方法上面的异常类型全部获取到跟当前抓到的异常进行匹配，如果匹配成功就会执行对应方法
 * 的异常处理逻辑！
 */
public class ExceptionAdvice {
    /**
     * 捕获异常
     *
     * @param e
     * @return 异常处理结果
     */
    @ExceptionHandler(Exception.class)
    public Result handleException(Exception e) {
        return Result.error("未知异常！");
    }
    @ExceptionHandler(ServiceException.class)
    public Result handleServiceException(ServiceException e) {
        return Result.error("服务器异常！"+e.getMessage());
    }
    @ExceptionHandler(CustomException.class)
    public Result handleCustomException(CustomException e) {
        return Result.error("用户操作异常！"+e.getMessage());
    }
}
